Most Internet Protocol (IP) network enabled computer devices are capable of sending and receiving IP data packets over one or more networks to other network enabled computer devices. Such computer devices may include, but are not limited to, desktop computers, laptop or notebook computers, tablet computers, and smartphones. In the area of communications, there are packet based protocols for streaming data, voice, and video using proprietary and/or standards based software. One such commercial example of a proprietary example is Skype™. A Skype™ user may communicate with other Skype™ users (and in some scenarios non-Skype™ users) by streaming IP data packets through a communications server to one or more other endpoints also communicable with the communications server.
This configuration works well enough when the endpoint(s) have good network connectivity with the communications server to which they can reliably send and receive the IP data packets. Often, however, the IP data packet stream may be interrupted or otherwise compromised resulting in garbled voice communication and/or inconsistent video communication due to jitter, latency, packet loss, etc. There is currently no mechanism available to the user to create a secondary or redundant concurrent IP data packet stream with the assistance of a second device over the same or a different communication link (or both) to the server. If such a mechanism were available to the user, the overall quality of the communication session between the endpoint and the communications server could be significantly enhanced using some packet stream bonding techniques.
The embodiments described herein offer such a mechanism of creating multiple concurrent (redundant) IP data packet streams using a secondary device that may be used to supplement the main IP data packet stream.